﻿using System;
using System.Collections.Generic;
using DAL;
using VO;
using COMMON;

namespace BLL
{
    public class ContatoClienteBLL
    {

        #region Insert
        public static Retorno<ContatoCliente> Insert(IList<ContatoCliente> obj)
        {
            var objReturn = new Retorno<ContatoCliente>();
            try
            {
                //Insere Campanha
                foreach (var objContato in obj)
                {
                    var list = Select(objContato.idCliente, objContato.Telefone);
                    if (list.Error == Enumerator.Error.NoRegistry)
                        new ContatoClienteDAL().Insert(objContato);
                }
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Select
        public static Retorno<ContatoCliente> Select(int idCliente, Enumerator.TipoContato tipoContato)
        {
            var objReturn = new Retorno<ContatoCliente>();
            try
            {
                objReturn.List = new ContatoClienteDAL().Select(idCliente);

                //Lista contato do cliente
                //switch (tipoContato)
                //{
                //    case (Enumerator.TipoContato.Interno):
                //        objReturn.List = new ContatoClienteDAL().SelectCliente(idCliente);
                //        break;
                //    case (Enumerator.TipoContato.Externo):
                //        objReturn.List = new ContatoClienteDAL().Select(idCliente);
                //        break;
                //    case (Enumerator.TipoContato.InteroEExterno):
                //        objReturn.List = new ContatoClienteDAL().SelectCliente(idCliente);
                //        var list = new ContatoClienteDAL().Select(idCliente);
                //        foreach (var obj in list)
                //        {
                //            objReturn.List.Add(obj);
                //        }
                //        break;
                //}
                if (objReturn.List.Count > 0)
                {
                    objReturn.Error = Enumerator.Error.Success;
                    objReturn.Message = "OK";
                }
                else
                {
                    objReturn.Error = Enumerator.Error.NoRegistry;
                    objReturn.Message = "NOK";
                }
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }

        public static Retorno<ContatoCliente> Select(int idCliente, string telefone)
        {
            var objReturn = new Retorno<ContatoCliente>();
            try
            {
                //Lista contato do cliente
                objReturn.List = new ContatoClienteDAL().Select(idCliente, telefone);
                if (objReturn.List.Count > 0)
                {
                    objReturn.Error = Enumerator.Error.Success;
                    objReturn.Message = "OK";
                }
                else
                {
                    objReturn.Error = Enumerator.Error.NoRegistry;
                    objReturn.Message = "NOK";
                }
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

    }
}